(function(){
	$("#query_module").linkbutton({
	    onClick: systemMenuQuery
	});
	$('#system_menu_add').linkbutton({    
	    onClick: systemMenuAdd
	});
	$('#system_menu_edit').linkbutton({    
	    onClick: systemMenuEdit
	});
	$('#system_menu_remove').linkbutton({    
	    onClick: systemMenuRemove
	});
	
	$('#system_menu_save').linkbutton({    
	    onClick: systemMenuFunctionSave
	});
	
	$("#system_menu_select_sys").combobox({
		url : "systemMaintenance/findSystemInfo",
		valueField:'fsysflag',
		textField:'fname',
		width : 200,
		onLoadSuccess : function(data) {
			if (data.length > 0) {
				$("#system_menu_select_sys").combobox("select", data[data.length-1].fsysflag);
			}
		},
		onChange: function(newValue,oldValue){
			systemMenuQuery();
		}
	});
	
	var fsysflag = $("#system_menu_select_sys").combobox("getValue");
	$('#system_menu_treegrid').datagrid({
		url : "systemMaintenance/findModulesBySys",
		toolbar : "#system_menu_treegrid_toolbar",
		queryParams : {
			fsysflag : fsysflag
		},
		rownumbers : true,
		fit : true,
		fitColumns : true,
		border : false,
		singleSelect : true,
		onClickRow : showMenu,
	    columns:[[
	        {field:'fcode',title:'角色编号',width:160,align:'center'},
	        {field:'fname',title:'角色名称',width:200,align:'center'}
	    ]]
	});
	
	$('#system_menu_function_datagrid').datagrid({
		toolbar : "#toolbar_content",
		rownumbers : true,
		fit : true,
		fitColumns : true,
		border : false,
	    columns : [[
	    	{field:'fid',checkbox:'true'},
	        {field:'fcontent',title:'菜单权限项',width:120,align:'center'}
	    ]],
	    onLoadError : errorPromt
	});
	
})();

/**
 * 系统管理-菜单管理-菜单加载
 */
function systemMenuQuery() {
	var fsysflag = $("#system_menu_select_sys").combobox("getValue");
	$("#system_menu_treegrid").datagrid("options").queryParams = {fsysflag:fsysflag};
	$("#system_menu_treegrid").datagrid("reload");
}

/**
 * 系统管理-菜单管理-菜单增加
 */
function systemMenuAdd() {
	$("#system_menu_form").form("clear");
	$('#system_menu_dialog').dialog({
		title: '添加菜单',
		closed: false,
		cache: false,
		buttons:[{
			text:'确定',
			handler:systemMenuAddConfirm
		},{
			text:'取消',
			handler: function() {
				$("#system_menu_dialog").dialog("close");
			}
		}]
	});
}

/**
 * 系统管理-菜单管理-菜单增加确认
 */
function systemMenuAddConfirm() {
	var fsysflag = $("#system_menu_select_sys").combobox("getValue");
	var fcode = $("#system_menu_fcode").val();
	var fname = $("#system_menu_fname").val();
	
	if (null == fcode || "" == fcode) {
		$.messager.alert("警告", "角色编号不能为空！", "info");
		return;
	}
	if (null == fname || "" == fname) {
		$.messager.alert("警告", "角色名不能为空！", "info");
		return;
	}
	
	var mark = systemMenuCheck(fcode);   // return标记，用来判断函数是否要中止
	// 当mark为true时，中止函数执行
	if (mark) {
		return;
	}
	
	$.ajax({
		url : "systemMaintenance/systemMenuCheckName",
		dataType:'json',
		type:'post',
		data : {fsysflag:fsysflag},
		success : function(data){
			var count=0;
			for (var i = 0; i < data.length; i++) {
				if (fname==data[i].fname) {
					count ++;
				}
			}
			if (count!=0) {
				$.messager.alert("警告", "该角色名称已存在！", "info");
				return;
			}
			$.ajax({
				url : "systemMaintenance/systemMenuAdd",
				dataType:'json',
				type:'post',
				data:{
					fcode : fcode,
					fname : fname,
					fsysflag : fsysflag
				},
				success : function(data) {
					if (data.success == true) {
						$.messager.alert('信息', "添加成功！", 'info');
						$("#system_menu_dialog").dialog("close");
						$("#system_menu_treegrid").datagrid("reload");
					} 
				},error : errorPromt
			});
		}
	})
}

/**
 * 系统管理-菜单管理-编辑菜单
 */
function systemMenuEdit() {
	var row = $("#system_menu_treegrid").datagrid("getSelected");
	if (row == "" || row == null) {
		$.messager.alert("信息","请选中菜单信息！","info");
		return;
	}
	// 清除表单中的原有数据
	$("#system_menu_form").form("clear");
	$("#system_menu_form").form("load", row);  // 加载表单数据
	
	$('#system_menu_dialog').dialog({
		title: '修改角色',
		closed: false,
		cache: false,
		buttons:[{
			text:'确定',
			handler: systemMenuEditConfirm
		},{
			text:'取消',
			handler:function(){
				$("#system_menu_dialog").dialog("close");
			}
		}]
	});
}

/**
 * 系统管理-菜单管理-菜单编辑确认
 */
function systemMenuEditConfirm() {
	var fsysflag = $("#system_menu_select_sys").combobox("getValue");
	var row = $("#system_menu_treegrid").datagrid("getSelected");
	var id = row.fid;
	
	var fcode = $("#system_menu_fcode").val();
	var fname = $("#system_menu_fname").val();
	
    var nodes = "";
    for (var i = 0; i < checkNodes.length; i++) {
    	if (nodes == "") {
    		nodes += checkNodes[i].fcode;
    	} else {
    		nodes += "," + checkNodes[i].fcode;
    	}
    }
	
	if (null == fcode || "" == fcode) {
		$.messager.alert("警告", "角色编号不能为空！", "info");
		return;
	}
	if (null == fname || "" == fname) {
		$.messager.alert("警告", "角色名称不能为空！", "info");
		return;
	}
	
	var mark = systemMenuCheck(fcode, id);   // return标记，用来判断函数是否要中止
	// 当mark为true时，中止函数执行
	if (mark) {
		return;
	}
	
	$.ajax({
		url : "systemMaintenance/systemMenuCheckName",
		dataType:'json',
		type:'post',
		data : {fsysflag:fsysflag,fname : fname},
		success : function(data){
			var count=0;
			for (var i = 0; i < data.length; i++) {
				if (fname==data[i].fname) {
					count ++;
				}
			}
			if (count!=0) {
				$.messager.alert("警告", "该角色名称已存在！", "info");
				return;
			}
			$.ajax({
				url : "systemMaintenance/updateModule",
				dataType:'json',
				type:'post',
				data:{
					id : id,
					fcode : fcode,
					fname : fname,
					nodes : nodes,
					fsysflag : fsysflag
				},
				success : function(data) {
					if (data.success == true) {
						$.messager.alert('信息', "修改成功！", 'info');
						$("#system_menu_dialog").dialog("close");
						$("#system_menu_treegrid").datagrid("reload");
					} 
				},error : errorPromt
			});
		}
	})
}

/**
 * 系统管理-菜单管理-菜单删除
 */
function systemMenuRemove() {
	var rows = $("#system_menu_treegrid").datagrid("getSelected");
	if (rows == null || "" == rows) {
		$.messager.alert("信息","请选中角色信息！","info");
		return;
	}
	
	$.messager.confirm('信息', '是否要删除角色信息?', function(r){
		if (r){//点击确定执行事件
			
			$.ajax({
				url : "systemMaintenance/deleteModule",
				dataType:'json',
				type:'post',
				data:{
					idStr : rows.fid
				},
				success : function(data) {
					if (data.success == true) {
						$.messager.alert('信息', "删除成功！", 'info');
						$("#system_menu_treegrid").datagrid("reload");
					} 
				},error : errorPromt
			});
		} 
	});
}

// 校验菜单信息
function systemMenuCheck(fcode, id) {
    var mark = false;  // return标记，用来判断调用该函数的函数是否要中止
	
	// 校验要新增权限的角色编号是否已存在
	$.ajax({
		url : "systemMaintenance/getModules",
		async : false,
		dataType: 'json',
		type: 'get',
		data: {id : id},
		success : function(data) {
            for (var i = 0; i < data.length; i++) {
            	// 判断权限编号是否已存在
				if (data[i].fcode == fcode) {
					$.messager.alert("警告", "该菜单编号已存在！", "info");
					mark = true;  // 权限编号冲突时，将mark置为true，以使函数正确中止
					return;
				}
			}
		},error : errorPromt
	});
	return mark;
}

/**
 * 系统管理-菜单管理-功能菜单保存
 */
function systemMenuFunctionSave() {
	var selectedModule = $("#system_menu_treegrid").datagrid("getSelected");  // 获得选中的权限
	var rows = $("#system_menu_function_datagrid").datagrid("getRows");   // 获得所有行
	var checkRows = $("#system_menu_function_datagrid").datagrid("getChecked");   // 获得选中行
	
	var contentCode = "";   // 保存页面内容0、1码   选中为1， 不选为0
	
    for (var i = 0; i < rows.length; i++) {
    	var rowIndex = $("#system_menu_function_datagrid").datagrid("getRowIndex", rows[i]);  // 获得当前行的行号
    	
		for (var j = 0; j < checkRows.length; j++) {
			var crowIndex = $("#system_menu_function_datagrid").datagrid("getRowIndex", checkRows[j]);   // 获得选中行的行号
			if (rowIndex == crowIndex) { // 若行号相等，表示当前行被选中
				contentCode += "1";
			}
		}
		
		// 当前行没有被选中，加0 （长度等于i表明内循环中没有加1）
		if (contentCode.length == i) contentCode += "0";
	}
	
	var moduleCode = selectedModule.fcode;   // 权限编号
	var menuCode = selectedNode.fcode;   // 菜单编号
	
	$.ajax({
		url: "systemMaintenance/systemMenuFunctionSave",
		cache : false,
		dataType: "json",
		type: "post",
		data: {
			moduleCode: moduleCode,
			menuCode: menuCode,
			contentCode : contentCode
		},
		success: function(data) {
			if (data.success == true) {
				$.messager.alert('信息', "保存成功！", 'info');
			} else {
				$.messager.alert('信息', "请先保存该菜单！", 'info');
			}
		},
		error: errorPromt
	})
	
}